package com.cykj.order.domain.dto;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单商品详情DTO
 * 包含订单详情和商品信息的关联数据
 * 
 * @author cykj
 * @date 2025-08-18
 */
public class OrderProductDetailDto {
    
    /** 订单详情ID */
    private Long detailId;
    
    /** 订单ID */
    private Long orderId;
    
    /** 商品ID */
    private Long productId;
    
    /** 商品名称 */
    private String productName;
    
    /** 商品价格 */
    private BigDecimal price;
    
    /** 商品描述 */
    private String description;
    
    /** 商品图片URL */
    private String productImage;
    
    /** 商品月销量 */
    private Integer monthlySales;
    
    /** 商品库存 */
    private Integer stock;
    
    /** 商品状态 */
    private Integer status;
    
    /** 店铺ID */
    private Long shopId;
    
    /** 购买数量 */
    private Integer quantity;
    
    /** 商品原价 */
    private BigDecimal originalPrice;
    
    /** 商品实际成交价 */
    private BigDecimal actualPrice;
    
    /** 退款状态 */
    private Integer refundStatus;
    
    /** 退款金额 */
    private BigDecimal refundAmount;
    
    /** 创建时间 */
    private Date createTime;

    public Long getDetailId() {
        return detailId;
    }

    public void setDetailId(Long detailId) {
        this.detailId = detailId;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Long getProductId() {
        return productId;
    }

    public void setProductId(Long productId) {
        this.productId = productId;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getProductImage() {
        return productImage;
    }

    public void setProductImage(String productImage) {
        this.productImage = productImage;
    }

    public Integer getMonthlySales() {
        return monthlySales;
    }

    public void setMonthlySales(Integer monthlySales) {
        this.monthlySales = monthlySales;
    }

    public Integer getStock() {
        return stock;
    }

    public void setStock(Integer stock) {
        this.stock = stock;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public Integer getQuantity() {
        return quantity;
    }

    public void setQuantity(Integer quantity) {
        this.quantity = quantity;
    }

    public BigDecimal getOriginalPrice() {
        return originalPrice;
    }

    public void setOriginalPrice(BigDecimal originalPrice) {
        this.originalPrice = originalPrice;
    }

    public BigDecimal getActualPrice() {
        return actualPrice;
    }

    public void setActualPrice(BigDecimal actualPrice) {
        this.actualPrice = actualPrice;
    }

    public Integer getRefundStatus() {
        return refundStatus;
    }

    public void setRefundStatus(Integer refundStatus) {
        this.refundStatus = refundStatus;
    }

    public BigDecimal getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(BigDecimal refundAmount) {
        this.refundAmount = refundAmount;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @Override
    public String toString() {
        return "OrderProductDetailDto{" +
                "detailId=" + detailId +
                ", orderId=" + orderId +
                ", productId=" + productId +
                ", productName='" + productName + '\'' +
                ", price=" + price +
                ", description='" + description + '\'' +
                ", productImage='" + productImage + '\'' +
                ", monthlySales=" + monthlySales +
                ", stock=" + stock +
                ", status=" + status +
                ", shopId=" + shopId +
                ", quantity=" + quantity +
                ", originalPrice=" + originalPrice +
                ", actualPrice=" + actualPrice +
                ", refundStatus=" + refundStatus +
                ", refundAmount=" + refundAmount +
                ", createTime=" + createTime +
                '}';
    }
}
